Technical Field
The present disclosure generally relates to performance testing of software applications.
Description of the Related Art
Web browsers function as user-friendly portals to the Internet's resources which facilitate navigation and information search. Recently, Web browsers have evolved into more sophisticated and complex software applications. Current Web browsers incorporate sophisticated multimedia rendering functions (e.g., video, audio, images) and enable a user to navigate and interact dynamically with connected Websites and other internet users.
Uniform resource locators (URLs) are the addresses of internet resources on the World Wide Web. A common URL contains a character string “http” which identifies the URL as a resource to be retrieved over the Hypertext Transfer Protocol (HTTP). Other common prefixes are “https” (for Hypertext Transfer Protocol Secure), “ftp” (for File Transfer Protocol), and “file” (for files that are stored locally on a user's computer). If a URL points to a Website, which is often a case, the Web browser uses the URL to access the Website and retrieve the Webpage from the Website.
Once the Webpage has been retrieved by a processor-based system, the Web browser displays the Webpage on a display screen of the processor-based system. Hypertext Markup Language (HTML) documents and any associated content (e.g., text, images, video, audio) are passed to the Web browser's rendering or layout engine to be transformed from markup to an interactive document, a process known as “rendering.” Webpages frequently include other content such as formatting information (e.g., Cascading Style Sheets (CSS)) and scripts (e.g., JavaScript) into their final presentation.
A Web application is a computer software application that is coded in a Web browser-supported programming language (e.g., HTML, JavaScript) and is reliant on a Web browser to render the application executable. Available Web browsers include, for example, Internet Explorer®, Google Chrome®, Mozilla Firefox®, Opera® and Safari®.
Often, software applications are implemented as a single page Web application (SPA). An SPA is a Web application or Website that fits on a single Webpage with the goal of providing a more fluid user experience similar to a desktop or “native” application. In an SPA, either all of the necessary code (e.g., HTML, JavaScript, CSS) is retrieved with a single page load, or the appropriate resources are dynamically loaded and added to the page as necessary, usually in response to user actions. The page does not reload at any point in the session, nor does control transfer to another page, although modern Web technologies (e.g., HTML5 pushState( ) API) may provide the perception and navigability of separate logical pages in the application. Interaction with the SPA often involves dynamic communication with one or more Web servers behind the scenes.
Normally, an SPA is fully loaded in the initial page load and then page regions or components are replaced or updated with new page components loaded from one or more of the Web servers on demand. To avoid excessive downloading of unused features, an SPA may progressively download more components as they become required.
When an SPA loads, each of the components loads at different speeds, depending on the type, quantity and source of data being loaded into each of the components. For performance testing, once data has been returned from a corresponding Web service for each component, it would be advantageous for developers to be able to benchmark and track load times for each component to identify potential performance issues. Currently, there is no easy way to find out how long a single component in a single-page application takes to load without making changes to the application source code.